// stores/counter.js
import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
  // 状态定义
  state: () => ({
    count: 0,
    name: 'Eduardo'
  }),

  // 计算属性
  getters: {
    doubleCount: (state) => state.count * 2,
    // 可以访问其他 getter
    doubleCountPlusOne() {
      return this.doubleCount + 1
    }
  },
  // 状态持久化
  persist: {
    enabled: true,
    strategies: [
      {
        key: 'counter',
        storage: localStorage
      }
    ]
  },
  // 方法（动作）
  actions: {
    increment() {
      this.count++
    },
    // 可以是异步的
    async fetchData() {
      // 模拟 API 请求
      const data = await fetch('https://api.example.com/data')
      this.name = (await data.json()).name
    }
  }
})
